1. Field of the Invention
The present invention relates to data streaming protocols and more particularly to protocols for transporting real time data.
2. State of the Art
One of the characteristics of a real-time data stream, such as a videophone data stream, is that it is isochronous-that time is of the essence. If an error occurs in a video or audio stream, the system cannot afford the time to stop everything and retransmit the lost data packets-this will seriously upset the real-time data flow. A better procedure is to just "plow ahead" and pick up the video (or audio) with the next intact frame received.
A protocol is simply a set of mutually agreed upon rules of procedure stating how two or more parties are to interact to exchange information. Virtually all major telecommunications network architectures presently use a layered protocol architecture. As described in Spragins, Telecommunications: Protocols and Design (Addison-Wesley, 1991, incorporated herein by reference), the basic idea of a layered architecture is to divide the architecture into small pieces. Each layer adds to services provided by lower layers in such a manner that the highest layer is provided a full set of services to manage communications and run distributed applications. Independence of layers is ensured by defining services provided by each layer to the next higher layer without defining how services are performed, thereby permitting changes in a layer without affecting other layers.
The Open Systems Interconnection (OSI) Reference Model Architecture, developed by the International Organization for Standardization (ISO), describes layered network architectures. The manner in which peer-to-peer communication is performed is shown in FIG. 1, illustrating communication from application X to application Y with application X presenting application data (AP data) to the system for transmission to application Y.
Referring to FIG. 1, in constructing an outgoing frame, each layer (except for the physical layer) may add one or more fields to information from higher layers, with corresponding field(s) stripped off by the corresponding peer layer during incoming frame reduction. The added fields are used for peer-to-peer communication. The application layer at the source adds an application header (AH), containing information it wants to send to its peer application layer, to application data. The AH is passed unchanged (ignoring transmission errors) to the receiver where the application layer strips it off and takes actions indicated by its contents. The remaining portion of the received packet is AP data and is passed up to application Y. Similarly, a presentation header (PH), session header (SH, transport header (TH), network header (NH), and data link header (DH) are added by the corresponding layer at the transmitting end and stripped off by the peer layer at the receiving end, with each used for peer-to-peer communication. Each layer treats the assemblage of information from higher layers as data, and does not worry about its contents.
The data link layer may also add a data link trailer (DT) to the end of the message, primarily error control information most readily put at the end of a frame. At intermediate nodes (not shown), the data link and network layers strip off their headers as the packet flows up at such nodes, and add new headers as it flows back down. No header or trailer is added at the physical layer, which does not recognize data units larger than a bit and views data as a string of bits. Similarly, the communications path views information as a sequence of electrical (or optical) signals used to transmit bits.
In addition to data messages that flow across the network as indicated, control messages may be exchanged between peer processes at any layer. Each peer-to-peer protocol defines control messages for purposes such as setting up connections at that layer, flow control, and error control. Control messages generated by layers originate at those layers and have headers (occasionally trailers) added by lower layers.
In the case of a point-to-point network, such as the telephone network, protocols may be relatively simple. Exchange of real-time data streams, such as voice, over such networks is, of course, well-known. In the case of a multipoint network, such as a local area network (or LAN), on the other hand, protocols are required to be significantly more involved to ensure that the correct information arrives at the correct destination(s) at the right time. The present invention is directed toward exchange of real-time data streams over networks of the latter type.
For these purposes, protocols such as the AppleTalk.RTM. Data Stream Protocol (ADSP), AppleTalk.RTM. Transaction Protocol (ATP), and Transmission Control Protocol (TCP) provide error correction capabilities that are unwanted, and lower-level protocols such as the Datagram Delivery Protocol (DDP), Unsequenced Datagram Protocol (UDP), and Internet Protocol (IP) do not provide sufficient error-detection facilities.
In ADSP, for example, when a packet sent by end A is lost, the receiver, end B, discards subsequent packets because they are out of sequence (as indicated by a sequence number included in each packet). When end A has sent all of the data in its send queue, it sends an acknowledgement request to end B. In response, end B sends a message indicating that it is still expecting the lost packet and packets subsequent (which were discarded). End A then retransmits all of the lost data.
DDP, on the other hand, is a simple, best-effort protocol for internet-wide, socket-to-socket delivery of datagrams. (An internet consists of one or more networks connected by intelligent store-and-forward devices; a socket is an addressable entity within a node connected to a network, used by a software process to send and receive datagrams; a datagram is self-contained packet, independent of other packets in a data stream and carrying its own source and destination information.) Typically, the receiver has no way of knowing in what order datagrams have been sent to it and which datagrams may have been lost. Further details concerning protocols within the AppleTalk.RTM. protocol suite, including ADSP, ATP and DDP, may be found in Inside AppleTalk.RTM., Second Edition, an official publication of Apple Computer, Inc.
Therefore, what is needed is a new simple protocol tailored to the requirements of isochronous data streams.